group { name: "elm/spinner/base/default";
   alias: "elm/spinner/base/colorselector/default";
   parts {
      part { name: "clip"; type: RECT;
         description { state: "default" 0.0;
            rel.to: "elm.swallow.text_button";
         }
      }
      part { name: "bg"; type: RECT;
         scale: 1;
         description { state: "default" 0.0;
            color_class: "/bg/normal/spinner/base";
         }
      }
      part { name: "access"; type: RECT;
         repeat_events: 1;
         description { state: "default" 0.0;
            fixed: 1 1;
            color: 0 0 0 0; // no cc
            visible: 0;
         }
         description { state: "active" 0.0;
            inherit: "default" 0.0;
            visible: 1;
         }
      }
      part { name: "elm.swallow.entry"; type: SWALLOW;
         clip_to: "clip";
         description { state: "default" 0.0;
            fixed: 1 1;
            rel.to: "elm.swallow.text_button";
            visible: 0;
         }
         description { state: "active" 0.0;
            inherit: "default" 0.0;
            visible: 1;
         }
      }
      part { name: "elm.swallow.dec_button"; type: SWALLOW;
         scale: 1;
         description { state: "default" 0.0;
            rel1.offset: 4 4;
            rel2.offset: 4 -5;
            rel2.relative: 0.0 1.0;
            align: 0.0 0.5;
            FIXED_SIZE(15, 15)
            offscale;
         }
      }
      part { name: "elm.swallow.inc_button"; type: SWALLOW;
         scale: 1;
         description { state: "default" 0.0;
            rel1.offset: -5 4;
            rel2.offset: -5 -5;
            rel1.relative: 1.0 0.0;
            align: 1.0 0.5;
            FIXED_SIZE(15, 15)
            offscale;
         }
      }
      part { name: "elm.swallow.text_button"; type: SWALLOW;
         scale: 1;
         description { state: "default" 0.0;
            visible: 1;
            rel1.to_x: "elm.swallow.dec_button";
            rel1.relative: 1.0 0.0;
            rel1.offset: 4 4;
            rel2.to_x: "elm.swallow.inc_button";
            rel2.relative: 0.0 1.0;
            rel2.offset: -5 -5;
            offscale;
         }
         description { state: "inactive" 0.0;
            inherit: "default" 0.0;
            visible: 0;
         }
      }
      part { name: "elm.dragable.slider"; type: RECT;
         repeat_events: 1;
         dragable.x: 1 1 0;
         dragable.y: 0 0 0;
         description { state: "default" 0.0;
            fixed: 1 0;
            rel.to: "elm.swallow.text_button";
            color: 0 0 0 0; // no cc
         }
      }
      part { name: "disabler"; type: RECT;
         repeat_events: 0;
         mouse_events: 0;
         description { state: "default" 0.0;
            color: 0 0 0 0; // no cc
            visible: 0;
         }
         description { state: "disabled" 0.0;
            inherit: "default" 0.0;
            visible: 1;
         }
      }
   }
   programs {
      program { name: "entry_active";
         signal: "elm,state,entry,active"; source: "elm";
         action: STATE_SET "active" 0.0;
         target: "elm.swallow.entry";
      }
      program { name: "entry_inactive";
         signal: "elm,state,entry,inactive"; source: "elm";
         action: STATE_SET "default" 0.0;
         target: "elm.swallow.entry";
      }
      program { name: "text_button_active";
         signal: "elm,state,button,active"; source: "elm";
         action: STATE_SET "default" 0.0;
         target: "elm.swallow.text_button";
      }
      program { name: "text_button_inactive";
         signal: "elm,state,button,inactive"; source: "elm";
         action: STATE_SET "inactive" 0.0;
         target: "elm.swallow.text_button";
      }
      program { name: "access_activate";
         signal: "elm,state,access,active"; source: "elm";
         action:  STATE_SET "active" 0.0;
         target: "access";
      }
      program { name: "access_inactivate";
         signal: "elm,state,access,inactive"; source: "elm";
         action:  STATE_SET "default" 0.0;
         target: "access";
      }
      program { name: "disable";
         signal: "elm,state,disabled"; source: "elm";
         action: STATE_SET "disabled" 0.0;
         target: "disabler";
      }
      program { name: "enable";
         signal: "elm,state,enabled"; source: "elm";
         action: STATE_SET "default" 0.0;
         target: "disabler";
      }
   }
}

group { name: "elm/spinner/base/vertical";
   inherit: "elm/spinner/base/default";
   parts {
      part { name: "elm.swallow.inc_button"; type: SWALLOW;
         scale: 1;
         description { state: "default" 0.0;
            rel1.offset: 4 4;
            rel2.offset: -5 4;
            rel1.relative: 0.0 0.0;
            rel2.relative: 1.0 0.0;
            align: 0.5 0.0;
            offscale;
         }
      }
      part { name: "elm.swallow.text_button"; type: SWALLOW;
         scale: 1;
         description { state: "default" 0.0;
            visible: 1;
            rel1.to_x: "bg";
            rel1.to_y: "elm.swallow.inc_button";
            rel1.relative: 0.0 1.0;
            rel1.offset: 5 5;
            rel2.to_x: "bg";
            rel2.to_y: "elm.swallow.dec_button";
            rel2.relative: 1.0 0.0;
            rel2.offset: -5 -5;
            offscale;
         }
         description { state: "active" 0.0;
            inherit: "default" 0.0;
            visible: 0;
         }
      }
      part { name: "elm.swallow.dec_button"; type: SWALLOW;
         scale: 1;
         description { state: "default" 0.0;
            rel1.offset: 4 -5;
            rel2.offset: -5 -5;
            rel2.relative: 0.0 1.0;
            rel2.relative: 1.0 1.0;
            align: 0.5 1.0;
         }
      }
      part { name: "elm.dragable.slider"; type: RECT;
         repeat_events: 1;
         dragable.x: 0 0 0;
         dragable.y: 1 1 0;
         description { state: "default" 0.0;
            fixed: 1 0;
            rel.to: "elm.swallow.text_button";
            color: 0 0 0 0; // no cc
         }
      }
   }
}
